package com.lemobar.pay.model;

import com.lemobar.pay.enums.LmbPayTypeEnum;
import com.lemobar.pay.model.alipay.request.AliPayTradeRefundRequest;
import com.lemobar.pay.model.wxpay.request.WxPayRefundRequest;
import lombok.Data;

/**
 * 支付时请求参数
 * 申请退款 返回的参数
 * wx -> {@link WxPayRefundRequest}
 * ali -> {@link AliPayTradeRefundRequest}
 */
@Data
public class RefundRequest {

    /**
     * 支付方式.
     */
    private LmbPayTypeEnum payTypeEnum;

    /**
     * 商户订单号
     * wx -> out_trade_no
     * ali -> out_trade_no
     */
    private String orderId;

    /**
     * 外部订单号
     * (例如微信生成的transaction_id)
     * wx -> transaction_id
     * ali -> trade_no
     */
    private String outOrderId;

    /**
     * 商户退款单号
     * 标识一次退款请求，同一笔交易多次退款需要保证唯一，如需部分退款，则此参数必传。
     * wx -> out_refund_no      分多批次退款时，批次的退款id要不一样
     * ali -> out_request_no    分多批次退款时，批次的退款id要不一样。如需部分退款，则此参数必传。---- 请求退款接口时，未传入，则该值为创建交易时的商户订单号。
     */
    private String refundId;

    /**
     * 订单金额
     * 订单总金额 单位元  微信退款需要
     * wx -> total_fee
     * ali -> 没用
     */
    private Double orderAmount;

    /**
     * 退款金额
     * 退款总金额 单位元
     * wx -> refund_fee
     * ali -> refund_amount
     */
    private Double refundAmount;

    /**
     * 退款原因
     * wx -> refund_desc
     * ali -> refund_reason    不能填中文 支付宝端会验签出错
     */
    private String refundReason;

}
